using System;

namespace Common.Database
{
    /// <summary>
    /// 
    /// </summary>
    public interface ITable : IDeletable, IRenamable
    {
        #region C'Tor / D'Tor

        /// <summary>
        ///
        /// </summary>
        /// <param name="objAfter"></param>
        IColumn CreateColumn(IColumn objAfter);

        /// <summary>
        ///
        /// </summary>
        /// <param name="objColumn"></param>
        bool DeleteColumn(IColumn objColumn);

        /// <summary>
        ///
        /// </summary>
        void Update();


        #endregion C'Tor / D'Tor

        #region Class Members
        /// <summary>
        /// 
        /// </summary>
        event ColumnPropertyChangedHandler PropertyChanged;


        #endregion Class Members

        #region Properties

        /// <summary>
        ///
        /// </summary>
        IColumnCollection Columns
        {
            get;
        }

        /// <summary>
        ///
        /// </summary>
        DateTime DateCreated
        {
            get;
        }

        /// <summary>
        ///
        /// </summary>
        string Owner
        {
            get;
        }

        /// <summary>
        ///
        /// </summary>
        string Name
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        string FileGroup
        {
            get;
        }

        /// <summary>
        ///
        /// </summary>
        int Rows
        {
            get;
        }

        /// <summary>
        ///
        /// </summary>
        bool IsNew
        {
            get;

        }


        #endregion Properties

    }
}
